<?php namespace Admin\Controller;
//后台文章控制器
class ArcController extends CommonController{
	private $arc;
	public function __auto(){
		$this->arc=new \Common\Model\Arc;
	} 
	//文章列表
	public function index(){
		//分页使用
		$page=Page::row(2)->make(Db::table('article')->where("is_recycle=0")->count());
//		P($page)
    	//SELECT * FROM article JOIN category ON category_cid=cid;
		View::with('page',$page);
		$data=Db::table('article')
			->leftJoin('category','category_cid','=','cid')
			->where("is_recycle=0")
			->orderBy('sendtime','DESC')
			->field('title,aid,cname,sendtime')
			->limit(Page::limit())
			->get();
//		 P($data);exit;		
		if(!$data){
			View::success('请先去添加文章','add');
		}
		View::with('data',$data);
	
		View::make();
	}
	// 添加文章
	public function add(){
		if(IS_POST){
			if($this->arc->store()){
				View::success("文章添加成功",U('index'));

			}
			View::error($this->arc->getError());
		}
		//处理当前已知的分类
		$cate=new \Common\Model\Cate;
		$cateData=Data::tree($cate->get(),'cname');
		// $cateData=$cate->get();
		// P($cateData);die;

		View::with('cateData',$cateData);
		//获取的标签
		$tag=new \Common\Model\Tag;
		$tagData=$tag->get();
//		p($tagData);
		View::with('tagData',$tagData);
		View::make();
	}
	//编辑文件
	public function edit(){
		//3.修改
		if(IS_POST){
			if(!$this->arc->edit()) View::error($this->arc->getError());
			View::success("文章修改成功",U('index'));
		}
		//1.处理标签和分类数据
		$tag=new \Common\Model\Tag;
//		 P($tag->get());
		
		View::with('tagData',$tag->get());
		$cate=new \Common\Model\Cate;
		View::with('cateData',Data::tree($cate->get(),'cname'));
		//2.获得旧数据
		$aid=Q('get.aid',0,'intval');
		$oldData=Db::table('article')
				->join('article_data','aid','=','article_aid')
				->where("aid={$aid}")
				->first();
				//first()获取数组中的第一条数据
		View::with('oldData',$oldData);

		//获取当前文章所选择的标签
		$arcTag=new \Common\Model\ArcTag;
		//用lists获取所有符合条件的tid，返回值为数组
		$tids=$arcTag->where("article_aid={$aid}")->lists('tag_tid');
		//如果用户没有选择标签，那么标签的默认值为null，给一个默认值为空数组
		$tids=$tids ? $tids:array();
		// P($tids);
		View::with('tids',$tids);
		View::make();
	}
	//移动文件添加至回收站
	public function remove(){
		$aid=Q('get.aid',0,'intval');
		//删除文章在is_recycle为1
		$this->arc->where("aid={$aid}")->update(array('is_recycle'=>1));
		View::success('文章删除成功',U('index'));
	}
	//显示回收站文件
	public function recycle(){
		$data=Db::table('article')->leftJoin('category','category_cid','=','cid')->where("is_recycle=1")->get();
		View::with('data',$data);
		View::make();
	}
	//还原加入回收站的文件
	public function restore(){
		$aid=Q('get.aid',0,'intval');
		$this->arc->where("aid={$aid}")->update(array('is_recycle'=>0));
		View::success('文章还原成功',U('recycle'));
	}
	//彻底删除文章
	public function del(){
		$aid=Q('get.aid',0,'intval');
		$oldImg=$this->arc->where("aid={$aid}")->pluck('thumb');
		if($oldImg){
		//删除缩略图
		unlink($oldImg);
		//删除原图
		$path=str_replace("_thumb",'',$oldImg);
		unlink($path);
		}
		//删除对应的文章表
		$this->arc->where("aid={$aid}")->delete();
		//删除对应的文章标签中间表
		$arcTag=new \Common\Model\ArcTag;
		$tids=$arcTag->where("article_aid={$aid}")->delete();
		//删除对应的文章数据表
		$arcData=new \Common\Model\ArcData;
		$arcData->where("article_aid={$aid}")->delete();
		
		View::success('文章已彻底删除',U('recycle'));
	}
}